<?php

namespace library\Router;

/**
 * Rozszerzenie klasy bazowej przepisujące adresy url z wykorzystaniem wyrażeń regularnych
 *
 * @author Damian Jóźwiak
 */
class Regex extends Route{
    /**
     * @readwrite
     */
    protected $keys;
    /**
     * dopasowanie z wykorzystaniem wyrażeń regularnych
     * @param string $url
     * @return boolean
     */
    public function matches($url) {
        $pattern = $this->pattern;
        
        //sprawdzenie wartości 
        preg_match_all("#^{$pattern}$#", $url, $values);
        
        if (sizeof($values) && sizeof($values[0]) && sizeof($values[1])){
            //znaleziono
            $derived = array_combine($this->keys, $values[1]);
            $this->parameters = array_merge($this->parameters,$derived);
            return true;
        }
        return false;
    }
}
